package top.tangyh.lamp.care.service;

import top.tangyh.basic.base.service.SuperService;
import top.tangyh.lamp.care.entity.BObsvCfg;
import top.tangyh.lamp.care.vo.query.ObsvCfgQueryParam;
import top.tangyh.lamp.care.vo.result.ObsvCfgDto;
import top.tangyh.lamp.care.vo.result.ObsvCfgForRdDto;
import top.tangyh.lamp.care.vo.result.PageOutputDTO;
import top.tangyh.lamp.care.vo.save.BObsvCfgSaveVO;
import top.tangyh.lamp.care.vo.update.BObsvCfgUpdateVO;
import top.tangyh.lamp.care.vo.result.BObsvCfgResultVO;
import top.tangyh.lamp.care.vo.query.BObsvCfgPageQuery;

import java.util.List;
import java.util.Map;
import java.util.Set;


/**
 * <p>
 * 业务接口
 * 观察项配置主表
 * </p>
 *
 * @author zqb
 * @date 2024-07-26 11:20:21
 * @create [2024-07-26 11:20:21] [zqb] [代码生成器生成]
 */
public interface BObsvCfgService extends SuperService<Long, BObsvCfg> {

    /**
     * 查询观察项全局配置，该配置适用于观察记录查询所需全局配置，返回是分类处理的 观察项配置集合
     *
     * @param param 观察项配置全局查询参数
     * @return
     */
    List<ObsvCfgForRdDto> queryForRd(ObsvCfgQueryParam param);


    void fillDataDefine(List<ObsvCfgDto> list, boolean isAll);

    Map<String, ObsvCfgDto> getAllEnum(boolean isAll);


    /**
     * 分页查询观察项配置
     *
     * @param param 查询参数
     * @return
     */
    PageOutputDTO<ObsvCfgDto> queryPage(ObsvCfgQueryParam param);

    /**
     * 新增或保存所有观察项数据
     *
     * @param param 保存参数
     * @return
     */
    ObsvCfgDto insertOrUpdate(ObsvCfgDto param);


    List<BObsvCfg> getObsvCfgByParam(Set<String> obsvcodes);

      BObsvCfg getOneByCodeAndNoDel(String itemCode);
        List<BObsvCfg> getByCodeAndNoDel(String itemCode);
}


